1. Field of the Invention
The present invention generally relates to computer systems that execute a power-on, self-test (POST) operation during system initialization to determine system capabilities and identify malfunctioning hardware. More particularly, the present invention relates to a computer system that expedites the system initialization process for processors in the system.
2. Background of the Invention
Conventional computer systems are designed to work with a wide variety of peripheral devices. These peripheral devices may be included in the computer system when it is originally manufactured, or may be added to the system by the consumer to expand the capabilities of the system. For successful operation, the computer system must be cognizant of these peripheral devices, and must provide the necessary electrical signals to these devices so that they can perform their intended function. Although these peripheral devices are considered hardware, they often include a microprocessor or some other programmable electronic device that enables these devices to operate intelligently, based on commands and instructions from a programmer.
At the heart of any computer system is the processor or processors that execute the software that controls system operation. Software for personal computers (PCs) and personal device assistants (PDAs) generally may be classified into two groups—the Basic Input/Output System (BIOS) of the computer system, and the Operating System (OS). The BIOS includes a series of complex software programs that are stored in a read-only memory (ROM) integrated circuit that is supplied as part of the basic computer system. The BIOS software provides at least three important functions in the operation of a computer system. First, the BIOS software includes routines for performing the Power-On Self Test (POST), which executes automatically each time the computer is powered. The POST routines check various components in the computer system, including memory, to identify hardware errors that may compromise the efficacy of the computer system. Users are unable to enter commands to the system during execution of the BIOS software. The second function performed by the BIOS software is to initiate device drivers. Device drivers are special programs that provide a set of standardized interfaces to the various hardware devices and peripherals in the system. The device drivers operate at the hardware level. This frees programmers from being required to understand the characteristics of the various hardware devices, and instead permits the programmer to program to a standard interface. Thirdly, the BIOS software provides a collection of useful services such as interrupts, that are primarily used by the Operating System as part of its normal operation.
One of the deficiencies of current computer systems is that it takes an excessive time to initialize the computer system. This is due in large measure to the amount of time it takes to execute the POST routines. The BIOS software, and in particular the POST routines, were designed early in the history of computer systems. Consequently, POST routines were written for computer systems that had relatively few hardware devices and peripherals. As hardware devices and peripherals have proliferated in computer systems, the execution of the POST routines has become increasingly lengthy. It is now fairly common for computer systems, such as PCs, servers, workstations and PDAs, to take several minutes to complete the boot cycle. The consequence is that users are forced to wait relatively long periods before gaining access to the computer system. For some users, the downtime experienced while a computer boots is an annoyance. For other customers, computer downtime translates into a loss of money, or increased exposure to risk. In some systems, any delay is unacceptable. One of the goals of modem computer systems, therefore, is to minimize the amount of time it takes to boot a computer or a processor. While some of these attempts have resulted in a shorter boot cycle, to appreciably reduce boot time for a computer system, it is necessary to minimize the delay that occurs during the execution of the POST software. To date, no one has attempted a major overhaul of the POST software to reduce system latency.
In systems with multiple processors, dynamic hardware partitioning may be used to enable the system to run multiple Operating Systems. In addition, dynamic hardware partitioning enables customers to swap components while the system is operational. Some of the components that may be hot swapped include processors, memory and various input/output (I/O) devices. In the event that processors are hot swapped, they must be booted before they can become operational. This means that the system must remain suspended while the newly added processor completes the boot process. Thus, the delay experienced by POST may be exaggerated in a multiple processor system that implements dynamic hardware partitioning. In addition, the BIOS software typically is executed when a new device is detected in a plug-and-play system. Thus, each time a new device is added to the system, the computer system may enter a cycle during which the computer system is inaccessible.
BIOS software operations typically are implemented in linear fashion. As an example, the conventional POST software operation is shown in FIGS. 1A-1D. Referring first to FIG. 1A, the POST process typically includes self-testing of eight different hardware groups, including video devices, CMOS memory and registers, keyboard, memory systems, floppy drives, SCSI devices, hard drives and CD-ROM drives. The BIOS executes linearly, as shown in FIGS. 1B-1D. Thus, as shown in FIG. 1B, the POST process begins by first testing video devices. Once the BIOS determines the operability of the video devices, the POST routine then tests the CMOS devices in the computer system, as shown in FIG. 1C. After this testing is completed, each of the other hardware component groups are tested sequentially in turn, until the CD-ROM drive is finally tested, as shown in FIG. 1D. Because of the linear nature of the BIOS software, the time to complete the POST process may be lengthy. This translates into a relatively long delay period in the operation of the computer system while the processor boots. If multiple processors are included in the computer system, this delay may be compounded.
Despite the apparent disadvantages presented by the current POST routine configuration, to date no one has developed an alternative arrangement that would minimize computer system boot times.